//Source file: D:\\aaa\\com\\ce\\pms\\renovation\\service\\IRenovateChargeService.java

package com.ce.pms.renovation.service;

import java.util.List;

import com.ce.pms.base.service.IPmsBaseService;
import com.ce.pms.charge.vo.ChargeRecordVO;
import com.ce.pms.renovation.model.RenovateRequisitionDO;
import com.ce.pms.renovation.vo.DepositAccountingQueryConditionVO;
import com.ce.pms.renovation.vo.DepositAccountingQueryVO;
import com.ce.pms.renovation.vo.DepositAccountingVO;
import com.ce.pms.renovation.vo.RenovateChargeItemVO;
import com.sitechasia.webx.core.support.Page;


/**
 * 装修费用管理服务类
 */
public interface IRenovateChargeService extends IPmsBaseService{

   /**
    * 功能描述:通知保证金审批通过<br>
    * @param depositAccountingId
    * @param createor<br>
    * Create author:罗军林<br>
    * Create on:2009-1-7<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public void notifyAddApproveDepositAccountingChargerecord(Long depositAccountingId,Long createor);


   /**
    * 功能描述:保证金查询<br>
    * @param queryCondition
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2009-1-6<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public Page queryDepositAccountings(DepositAccountingQueryVO queryCondition);

   /**
    * 功能描述:查询指定许可证的保证金补退核算记录<br>
    * @param licenceId
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-30<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public DepositAccountingVO getDepositAccounting(Long licenceId);

   /**
    * 保证金退还核算
    * @param depositAccountingVO - 保证证核算结果
    * @return DepositAccountingVO
    * @roseuid 493C94F90186
    */
   public DepositAccountingVO countDepositAndAmercement(DepositAccountingVO depositAccountingVO);

   /**
    * 通知收出入证费用
    * @param passId - 出入证Id
    * @roseuid 493E24680261
    */
   public void notifyRegisterPassCharge(Long passId);

   /**
    * 通知退还出入证费用
    * @param passId - 出入证Id
    * @roseuid 493E2AFB037A
    */
   public void notifyReturnPassCharge(Long passId);

   /**
    * 通知登记装修收费
    * @param renovateRequisitionId - 装修申请ID
    * @roseuid 49406BFB034B
    */
   public void notifyRegisterRenovateCharge(Long renovateRequisitionId);

   /**
    * 通知重算垃圾处理费
    * @param renovateRequisitionId - 装修申请ID
    * @return Void
    * @roseuid 49406C660138
    */
   public void notifyRecalculateFee(Long renovateRequisitionId);

   /**
    * 功能描述:修改收费项目,如果费用状态为免收，将删除其对应的费用记录<br>
    * @param renovateChargeItems<br>
    * Create author:罗军林<br>
    * Create on:2008-12-26<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public void editRenovateChargeItems(Long requisitionId,List<RenovateChargeItemVO> renovateChargeItems);



   /**
    * 功能描述:删除指定装修申请的收费项目，首先将删除对应的费用记录<br>
    * @param renovateRequisitionId
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-25<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public Boolean deleteRenovateChargeItem(RenovateRequisitionDO renovateRequisition);


   /**
    * 功能描述:删除指定出入证的收费项目，首先将删除对应的费用记录<br>
    * @param passId
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-29<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public Boolean deletePassChargeItem(Long passId);

   /**
    * 功能描述:删除指定装修申请的收费项目未处理的费用记录,但不删除收费项目本身<br>
    * @param renovateRequisitionId
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-25<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public Boolean deleteRenovateChargeRecord(RenovateRequisitionDO renovateRequisition);

   /**
    * 功能描述:查询指定许可证的保证金补退核算记录，如果没有将返回null<br>
    * @param licenceId
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-30<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public DepositAccountingVO getDepositAccountingBylicenceId(Long licenceId);

   /**
    * 功能描述:删除指定出入证且费用业务类型为出入证退证的费用记录<br>
    * 注：退证的费用记录bizId和收费的费用记录bizId一样，但业务类型不一样
    * @param passId
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-29<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public Boolean deletePassChargeRecord(Long passId);

	/**
	 * 功能描述:将旧的装修申请的所有装修收费的收费项目挂靠在新的装修申请上<br>
	 * @param oldRequisitionId
	 * @param newRequisitionId<br>
	 * Create author:罗军林<br>
	 * Create on:2009-1-11<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public void moveRenovateChargeItemToNewQuistion(Long oldRequisitionId,Long newRequisitionId);
}
